from django.db import models

# Create your models here.
#verbose_name是admin后台显示的 null = True可以为空 blank = True可以不填
#choices是一个下拉框，后面的参数为下拉框选项 ，可以用与兴趣爱好，性别等
#逻辑删除不是真的删除只是让用户看不见了而已，服务端仍有数据存在
class Student(models.Model):
    SEX_CHOICES = (
        (0,'女'),
        (1,'男')
    )
    name = models.CharField(max_length=30,verbose_name='姓名')
    age = models.IntegerField(verbose_name='年龄',null=True,blank=True)
    sex = models.IntegerField(verbose_name='性别',null=True,blank=True,choices=SEX_CHOICES)
    #auto_now_add在model对象第一次被创建时，将字段的值设置为创建时的时间，以后修改对象时，字段的值不会再更新
    #auto_now在model对象第一次被创建是，设置字段的时间，以后每次更改都会更行时间
    #auto_now_add也具有强制性，一旦被设置为True，就无法在程序中手动为字段赋值，在admin中字段也会成为只读的
    create_time = models.DateTimeField(auto_now_add=True,verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True,verbose_name='更改时间')
    is_delete = models.BooleanField(default=False,verbose_name='逻辑删除')

    classes = models.ForeignKey('Classes',on_delete=models.CASCADE,verbose_name='班级')
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True
        self.save()

class Teacher(models.Model):
    SEX_CHOICES = (
        (0, '女'),
        (1, '男')
    )
    name = models.CharField(max_length=30, verbose_name='姓名')
    age = models.IntegerField(verbose_name='年龄', null=True, blank=True)
    sex = models.IntegerField(verbose_name='性别', null=True, blank=True, choices=SEX_CHOICES)
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更改时间')
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

class Classes(models.Model):
    name = models.CharField(max_length=20,verbose_name='班级名称')
    slogan = models.TextField(verbose_name='口号',null=True,blank=True)
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更改时间')
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True
        self.save()
    def __str__(self):#如果没有这段代码添加页面只会显示classes.object1,加了就会变成班级本来的名字
        return self.name